﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TVH.Web.Code;
using TVH.Comum;

namespace TVH.Cadastro
{
    public partial class Quarto : BasePage
    {
        Persistencia.PerQuarto persistencia = new Persistencia.PerQuarto();

        Persistencia.PerPredio perPredio = new Persistencia.PerPredio();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CarregarCombo();
            }

            if (Handler.GridAction == "Detalhar")
            {
                var id = Handler.ModelID.Value;
                var item = persistencia.Obter(id);

                PopularTela(item);

                txtDescricao.Attributes["readonly"] = "readonly";
                ddlPredio.Attributes["readonly"] = "readonly";
                txtSerialTV.Attributes["readonly"] = "readonly";

                btnSalvar.Visible = false;
            }
            else if (Handler.GridAction == "Editar")
            {

                var id = Handler.ModelID.Value;
                var item = persistencia.Obter(id);

                PopularTela(item);
            }

            if (!IsPostBack) return;
        }

        private void PopularTela(Entidade.Quarto item)
        {
            hdnID.Value = item.Id.ToString();
            txtDescricao.Text = item.Identificacao;
            ddlPredio.SelectedValue = item.IdPredio.ToString();
            txtSerialTV.Text = item.SerialTV.ToString();
        }

        private Entidade.Quarto PopularEntidade()
        {
            return new Entidade.Quarto()
                    {
                        Identificacao = txtDescricao.Text,
                        IdPredio = Convert.ToInt32(ddlPredio.SelectedValue),
                        SerialTV = txtSerialTV.Text
                    };
        }

        private void CarregarCombo()
        {
            ddlPredio.DataSource = perPredio.ObterLista();
            ddlPredio.DataValueField = "Id";
            ddlPredio.DataTextField = "Identificacao";
            ddlPredio.DataBind();
        }

        public void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                if (string.IsNullOrEmpty(hdnID.Value))
                {
                    persistencia.Inserir(PopularEntidade());
                }
                else
                {
                    var ent = PopularEntidade();
                    ent.Id = Convert.ToInt32(hdnID.Value);
                    persistencia.Alterar(ent);
                }
                ExibirMensagemSucesso("Prédio salvo com sucesso!");
            }
            catch (Exception ex)
            {
                ExibirMensagemErro("Erro ao salvar prédio.", ex);
            }
        }
    }
}